1. Technical Field
The present invention relates generally to computer network environments, and more specifically to logging services in distributed, multilevel architectures.
2. Description of Related Art
Computers have come to epitomize modern life. Today, computers are used for much more than simply computing. For example, banking transactions are often conducted through automated teller machines (ATMs) connected via networks to central processing centers that keep track of transactions while computerized telephone switching systems manage the millions of calls generated each day. Furthermore, computers are integral to both peoples personal life as well as to their business life.
As computers became more widespread in the workplace, new ways to harness their potential developed. Thus, with increasing use of computers for tasks other than simple computing has come an increase in complexity. Furthermore, as computers are increasingly networked together to provide even more functionality, that complexity is increased exponentially. To keep these networked computers operating and, therefore, ensure that ATM transactions, telephone calls, and business continue to operate smoothly, requires the work of administrators to monitor the systems and correct errors as they occur.
One tool that aids administrators in keeping networks operational is logging. Logging is the process of recording system events so that those actions can be reviewed later. Thus, if an error occurs, that error may be logged with other information to allow an administrator to discover the source of the problem and correct it. However, in networked systems, things occurring in various components of the system must be correlated to determine the ultimate cause of a problem.
Today data correlation is done using time-stamp to find related tasks flow with a single log. This works OK when the number of machine is small, the number of tasks is low or the interrelationship between tasks is low (messages look different to user). However, in installation with a thousand or more machines with at least that many administrators, a simple time stamp is not good enough for human data correlation. In addition, remote proxy calls (tasks that use components in two or more different Object Request Broker (ORB) machines) make this correlation more difficult because a single transaction can span numerous machines.
Prior attempts to solve this problem have used the idea of using a thread identification (ID) in a native operating system (OS) to track a program's execution. Such prior attempts include a 1997 International Business Machine distributed thread mechanism and method. This system was thread based and related to ensuring that for a distributed transaction, all portions are completed which solved the problem of allocating threads and tracking all operations completed between client and server systems. Another prior attempt is described in U.S. Pat. No. 6,205,465 entitled “Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information” which used parallel processing enablement to schedule execution of multiple threads on separate processors. These methods work fine in a single thread execution model, but become unmanageable in multiple threads across multiple machines. In the case of single machines, it is known who spawned the additional threads, whereas in the remote ORB the origin of the task is unknown. Therefore, it would be desirable to have an improved method and system for logging events in large networks.